WebGL Framebuffer ClearColor Only僅影響(0,0)像素

您所在的位置:网站首页 webgl fbo WebGL Framebuffer ClearColor Only僅影響(0,0)像素

WebGL Framebuffer ClearColor Only僅影響(0,0)像素

#WebGL Framebuffer ClearColor Only僅影響(0,0)像素| 来源: 网络整理| 查看: 265

我正在嘗試使用WebGL將場景渲染到幀緩衝區,並查看指定像素(被單擊的像素)的顏色值。問題是當我嘗試使用gl.readPixels獲取所有像素的像素數據,但(0,0)返回空值(0,0,0,0)時。 (0,0)像素(左上角)返回預期的值,這是幀緩衝區使用的清晰顏色。這裏是我使用的代碼的主要部分:WebGL Framebuffer ClearColor Only僅影響(0,0)像素

gl.bindFramebuffer(gl.FRAMEBUFFER, fbo); gl.viewport(0, 0, canvas.width, canvas.height); gl.clearColor(1.0, 1.0, 1.0, 1.0); gl.clearDepth(1.0); gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); // render code goes here var pixelData = new Uint8Array(4); gl.readPixels(screenPositionX, screenPositionY, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, pixelData); gl.bindFramebuffer(gl.FRAMEBUFFER, null);

如果我使用gl.readPixels上渲染的場景,我得到正確的結果,而不是當我使用它的幀緩存。我想這意味着我可以渲染幀緩衝區,然後使用gl.readPixels,但是我不希望這樣做,因爲幀緩衝區不是爲了被看到而是用於數據收集。任何信息或建議?

編輯: 我找到了解決方案,並在下面發佈。

來源

2014-12-03 user4319280

+0

您是否設置了視口? – 2014-12-03 09:27:37

+0

我曾嘗試過使用和不使用gl.viewport並獲得了相同的結果,但我會繼續並更新上面的代碼以顯示該代碼。 – user4319280 2014-12-03 16:02:42

+0

你可以顯示你添加幀緩衝的附件嗎?幀緩衝區只是附件(渲染緩衝區和/或紋理)的集合。渲染緩衝區和紋理是你想要讀取的像素。 – gman 2014-12-05 02:29:46



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3